//** jQuery Scroll to Top Control script- (c) Dynamic Drive DHTML code library: http://www.dynamicdrive.com.
//** Available/ usage terms at http://www.dynamicdrive.com (March 30th, 09')
//** v1.1 (April 7th, 09'):
//** 1) Adds ability to scroll to an absolute position (from top of page) or specific element on the page instead.
//** 2) Fixes scroll animation not working in Opera. 
var scrolltotop = {
    // startline: Integer. Number of pixels from top of doc scrollbar is
    // scrolled before showing control
    // scrollto: Keyword (Integer, or "Scroll_to_Element_ID"). How far to scroll
    // document up when control is clicked on (0=top).
    setting: {
        startline: 100,
        scrollto: 0,
        scrollduration: 1000,
        fadeduration: [500, 100]
    },// 调整图片显示位置
    controlHTML: '<img src=' + rootPath + "/images/gotop.gif"
    + ' style="width:31px; height:31px" />', // 自定义图片和宽度大小
    controlattrs: {
        offsetx: 100,
        offsety: 100
    }, // offset of control relative to right/ bottom of window corner
    anchorkeyword: '#top', // Enter href value of HTML anchors on the page that
                           // should also act as "Scroll Up" links

    state: {
        isvisible: false,
        shouldvisible: false
    },

    scrollup: function () {
        if (!this.cssfixedsupport) // if control is positioned using JavaScript
            this.$control.css({
                opacity: 0
            }); // hide control immediately after clicking it
        var dest = isNaN(this.setting.scrollto) ? this.setting.scrollto
            : parseInt(this.setting.scrollto);
        if (typeof dest == "string" && jQuery('#' + dest).length == 1) // check
        // element
        // set
        // by
        // string
        // exists
            dest = jQuery('#' + dest).offset().top;
        else
            dest = 0;
        this.$body.animate({
            scrollTop: dest
        }, this.setting.scrollduration);
    },
    keepfixed: function () {
        var $window = jQuery(window);
        var controlx = $window.scrollLeft() + $window.width()
            - this.$control.width() - this.controlattrs.offsetx;
        var controly = $window.scrollTop() + $window.height()
            - this.$control.height() - this.controlattrs.offsety;
        this.$control.css({
            left: controlx + 'px',
            top: controly + 'px'
        });
    },
    togglecontrol: function () {
        var scrolltop = jQuery(window).scrollTop();
        if (!this.cssfixedsupport)
            this.keepfixed();
        this.state.shouldvisible = (scrolltop >= this.setting.startline) ? true
            : false;
        if (this.state.shouldvisible && !this.state.isvisible) {
            this.$control.stop().animate({
                opacity: 1
            }, this.setting.fadeduration[0]);
            this.state.isvisible = true;
        } else if (this.state.shouldvisible == false && this.state.isvisible) {
            this.$control.stop().animate({
                opacity: 0
            }, this.setting.fadeduration[1]);
            this.state.isvisible = false;
        }
    },
    init: function () {
        jQuery(document)
            .ready(
                function ($) {
                    var mainobj = scrolltotop;
                    var iebrws = document.all;
                    mainobj.cssfixedsupport = !iebrws || iebrws
                        && document.compatMode == "CSS1Compat"
                        && window.XMLHttpRequest; // not IE or
                    // IE7+ browsers
                    // in standards
                    // mode
                    mainobj.$body = (window.opera) ? (document.compatMode == "CSS1Compat" ? $('html')
                        : $('body'))
                        : $('html,body');
                    mainobj.$control = $(
                        '<div id="topcontrol">'
                        + mainobj.controlHTML + '</div>')
                        .css(
                            {
                                position: mainobj.cssfixedsupport ? 'fixed'
                                    : 'absolute',
                                bottom: mainobj.controlattrs.offsety,
                                right: mainobj.controlattrs.offsetx,
                                opacity: 0,
                                cursor: 'pointer'
                            }).attr({
                            title: 'Scroll Back to Top'
                        }).click(function () {
                            mainobj.scrollup();
                            return false
                        }).appendTo('body');
                    if (document.all && !window.XMLHttpRequest
                        && mainobj.$control.text() != '') // loose
                    // check
                    // for
                    // IE6
                    // and
                    // below,
                    // plus
                    // whether
                    // control
                    // contains
                    // any
                    // text
                        mainobj.$control.css({
                            width: mainobj.$control.width()
                        }); // IE6- seems to require an explicit width
                            // on a DIV containing text
                    mainobj.togglecontrol();
                    $('a[href="' + mainobj.anchorkeyword + '"]').click(
                        function () {
                            mainobj.scrollup();
                            return false;
                        })
                    $(window).bind('scroll resize', function (e) {
                        mainobj.togglecontrol();
                    })
                })
    }
}
scrolltotop.init();